<?php

/**
* @desc Сохраняет данные формы администратора
*/
class User_Backend_Strategy_Admin extends User_Backend_Strategy_Abstract 
{
    
    /**
     * Таблица, в которой хранится запсиь админа
     *
     * @var string
     */
    protected $_table_admin = 'system_admin';
    
    /**
     * Обновляет существующую запись.
     *
     */
    protected function _update() 
    {
        parent::_update();
        
        // обновляем имя и роль
        $subject_data = User_Utils::getSystemSubjectData($this->id);
        database::update(
            $this->_table_admin, 
            array_extract($this->_getValues(), array('name')), 
            array('subject_id' => $subject_data['id'])
        );
    }
    
    /**
     * Добавляет новую запись.
     *
     */
    protected function _insert() 
    {
        parent::_insert();
        
        // указываем, что объект является администратором
        database::insert(
            $this->_table_admin, 
            array_extract($this->_values, array('name')) + array('subject_id' => $this->_subject_id)
        );
    }
    
}